efc58cdea3917b0b7e88240c03d51c2a2e64a62e,agent-simulator/src/com/cloud/agent/manager/MockStorageManagerImpl.java,MockStorageManagerImpl,primaryStorageDownload,#PrimaryStorageDownloadCommand#,126

Before Change


            return new PrimaryStorageDownloadAnswer("Can't find primary storage");
        }
        
        MockStoragePoolVO primaryStorage = _mockStoragePoolDao.findByUuid(cmd.getPoolUuid());
        if (primaryStorage == null) {
            return new PrimaryStorageDownloadAnswer("Can't find primary storage"); 
        }
        

After Change


		MockStoragePoolVO primaryStorage = null;
		try {
			txn.start();
			primaryStorage = _mockStoragePoolDao.findByUuid(cmd.getPoolUuid());
			txn.commit();
			if (primaryStorage == null) {
				return new PrimaryStorageDownloadAnswer("Can't find primary storage");
			}
		} catch (Exception ex) {
			txn.rollback();
			throw new CloudRuntimeException("Error when finding primary storagee " + cmd.getPoolUuid(), ex);
		} finally {
			txn.close();
            txn = Transaction.open(Transaction.CLOUD_DB);
            txn.close();
		}

		String volumeName = UUID.randomUUID().toString();
		MockVolumeVO newVolume = new MockVolumeVO();
		newVolume.setName(volumeName);
		newVolume.setPath(primaryStorage.getMountPoint() + volumeName);
		newVolume.setPoolId(primaryStorage.getId());
		newVolume.setSize(template.getSize());
		newVolume.setType(MockVolumeType.VOLUME);
		txn = Transaction.open(Transaction.SIMULATOR_DB);
		try {
			txn.start();
			_mockVolumeDao.persist(newVolume);
			txn.commit();
		} catch (Exception ex) {
			txn.rollback();
			throw new CloudRuntimeException("Error when saving volume " + newVolume, ex);
		} finally {
			txn.close();
            txn = Transaction.open(Transaction.CLOUD_DB);